package com.zhijiang.hospital.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * fan
 * 封装权限信息
 * 可以定义方法存储用户数据
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginUser {

    private SysUser sysUser;

    private List<String> rolenames;
    //  存储权限信息
    private List<String> permissions;

    private ComEmployee comEmployee;

    public LoginUser(SysUser user, List<String> permissions, ComEmployee comEmployee) {
        this.sysUser = user;
        this.permissions = permissions;
        this.comEmployee = comEmployee;
    }
    //  存储SpringSecurity所需要的权限信息的集合
    //  @JSONField(serialize = false)
    //  private List<GrantedAuthority> authorities;
    //
    //
    //
    //  @Override
    //  public Collection<? extends GrantedAuthority> getAuthorities() {
    //      if (authorities!=null){
    //          return authorities;
    //      }
    //      //把permissions中字符串转换成GrantedAuthority对象储存在authorities
    //       authorities = permissions.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList());
    //      return authorities;
    //  }
    //
    //  @Override
    //  public String getPassword() {
    //      return sysUser.getPassword();
    //  }
    //
    //  @Override
    //  public String getUsername() {
    //      return sysUser.getUsername();
    //  }
    //
    //  @Override
    //  public boolean isAccountNonExpired() {
    //      return true;
    //  }
    //
    //  @Override
    //  public boolean isAccountNonLocked() {
    //      return true;
    //  }
    //
    //  @Override
    //  public boolean isCredentialsNonExpired() {
    //      return true;
    //  }
    //
    //  @Override
    //  public boolean isEnabled() {
    //      return true;
    //  }
}
